
#Title[ʏ5]
#Text[]
#Image[]
#BackGround[]
#BGM[]
#PlayLevel[Extra]
#ScriptVersion[2]
#Player[FREE]


script_enemy_main
{

	@Initialize
	{
	SetLife(4000);
	SetDamageRate(200,  100);
	SetTimer(60);
	SetInvincibility(250);
	SetEnemyMarker(true);
	SetGraphicRect(64,1,127,64);
	LoadGraphic("script\img\ExRumia.png");
	}
	//   ʒu܂ňړ
	SetMovePosition02(GetCenterX, GetCenterY-120, 60);

	AtackTaskA;
	AtackTaskB;
	@MainLoop
	{
		yield;

		SetGraphicRect(0,1,63,64);
		if(GetSpeedX<0){
			SetGraphicRect(128,1,191,64);
		}
		if(GetSpeedX>0){
			SetGraphicRect(192,1,255,64);
		}

		SetCollisionA(GetX, GetY, 32);
		SetCollisionB(GetX, GetY, 24);
	}
	
	@DrawLoop
	{
		SetColor(255,255,255);
		SetAlpha(255);
		SetTexture("script\img\ExRumia.png");//摜͔q
		DrawGraphic(GetX,GetY);
	}
		
	@Finalize
	{
		DeleteGraphic("script\img\ExRumia.png");
	}
	//XyJ[h̔wi
	//Ă悢
/*	@BackGround
	{
	}
*/
	task AtackTaskA{
		wait(120);
		let rot=10;
		let dis=80;
		let wt=1;
		let ammo=16;
		loop{
			let cx=GetX;
			let cy=GetY;
			let dir=rand(0,360);
			let dirlist=[dir,dir-144,dir-288,dir-72,dir-216,dir];
			let movetime=120;
			let movedir=rand(0,360);
			ascent(v in 0..5){
				let x=cos(dirlist[v])*dis;
				let y=sin(dirlist[v])*dis;
				let tx=cos(dirlist[v+1])*dis;
				let ty=sin(dirlist[v+1])*dis;
				let movedir=dirlist[v];
				ascent(i in 0..ammo){
					CreateShotA(0,(tx-x)/ammo*i+x+cx,(ty-y)/ammo*i+y+cy,10);
					SetShotDataA(0,0,0,movedir,0,0,0,BLUE01);
					SetShotDataA(0,movetime,NULL,NULL,0,0.03,3,NULL);
					FireShot(0);
					wait(wt);
					movetime-=wt;
					movedir+=rot;
				}

			}
			MoveTask;
			rot=-rot;
		}
	}
	task AtackTaskB{
		wait(120);
		let rot=-3;
		let dis=60;
		let wt=1;
		let ammo=12;
		loop{
			let cx=GetX;
			let cy=GetY;
			let dir=rand(0,360);
			let dirlist=[dir,dir-144,dir-288,dir-72,dir-216,dir];
			let movetime=120;
			let movedir=rand(0,360);
			ascent(v in 0..5){
				let x=cos(dirlist[v])*dis;
				let y=sin(dirlist[v])*dis;
				let tx=cos(dirlist[v+1])*dis;
				let ty=sin(dirlist[v+1])*dis;
				let movedir=dirlist[v]+90;
				ascent(i in 0..ammo){
					CreateShotA(0,(tx-x)/ammo*i+x+cx,(ty-y)/ammo*i+y+cy,10);
					SetShotDataA(0,0,0,movedir,0,0,0,BLUE05);
					SetShotDataA(0,movetime,NULL,NULL,0,0.02,2,NULL);
					FireShot(0);
					wait(wt);
					movetime-=wt;
					movedir+=rot;
				}

			}
		}
	}

	task MoveTask{		//@Ɉړp^[
		let ptn=0;
		if(GetX<GetCenterX-80){ptn=1;}
		if(GetX>GetCenterX+80){ptn=2;}
		if(ptn==0){
			if(GetX<GetPlayerX){ptn=1;}
			else{ptn=2;}
		}
		if(ptn==1){
			SetMovePosition02(rand(GetX+40,GetX+60), rand(GetClipMinY+80,GetCenterY-80), 40);
		}
		if(ptn==2){
			SetMovePosition02(rand(GetX-40,GetX-60), rand(GetClipMinY+80,GetCenterY-80), 40);
		}
	}


	function wait(n){
		loop(n){yield;}
	}

}

